In general, the coding technology has been used to compress audio and video data. Dependence on codec technology is very high, especially in video processing technologies in which large amount of data is processed.
Meanwhile, since one of the important factors to evaluate performance in the codec technology is compression efficiency, many efforts have been made to increase a data compression rate by means of the codec.
The encoders and decoders widely used for video processing can process a variety of video formats. Codecs are needed to efficiently codes and decode input videos having all possible video formats or bit depths.
There is rapid growth in the technologies associated with the generation, transmission, and reproduction of media programs. These technologies include coding schemes that permit digital versions of the media program to be encoded to compress them to much smaller size and facilitate their transmission, storage, reception and playback. These technologies have application in personal video recorders (PVRs), video on demand (VOD), multiple channel media program offerings, interactivity, mobile telephony, and media program transmission.
Without compression, digital media programs are typically too large to transmit and/or store for a commercially acceptable cost. However, compression of such programs has made the transmission and storage of such digital media programs not only commercially feasible, but commonplace.
The High Efficiency Video Coding (HEVC) coding standard (or H.265) is a recent coding standard promulgated by the ISO/IEC MPEG standardization organizations. The coding standard preceding HEVC included the H.262/MPEG-2 and the subsequent H.264/MPEG-4 Advanced Video Coding (AVC) standard. H.264/MPEG-4 has substantially replaced H.262/MPEG-2 in many applications including high definition (HD) television. HEVC supports resolutions higher than HD, even in stereo or multi-view embodiments, and is more suitable for mobile devices such as tablet personal computers.
As in other coding standards, the bitstream structure and syntax of HEVC compliant data are standardized, such that every decoder conforming to the standard will produce the same output when provided with the same input. Some of the features incorporated into the HEVC standard include the definition and processing of a slice, one or more of which may together comprise one of the pictures in a video sequence. A video sequence comprises a plurality of pictures, and each picture may comprise one or more slices. Slices include non-dependent slices and dependent slices. A non-dependent slice (hereinafter simply referred to as a slice) is a data structure that can be decoded independently from other slices of the same picture in terms of entropy encoding, signal prediction, and residual signal construction. This data structure permits resynchronization of events in case of data losses. A “dependent slice” is a structure that permits information about the slice (such as those related with tiles within the slice or wavefront entries) to be carried to the network layer, thus making that data available to a system to more quickly process fragmented slices. Dependent slices are mostly useful for low-delay encoding.
Like its predecessors, HEVC supports both temporal and spatial encoding of picture slices. HEVC defines slices to include I-slices, which are spatially, but not temporally encoded with reference to another slice. I-slices are alternatively described as “intra” slice encoded. HEVC also defines slices to include P (predictive) slices, which are spatially encoded and temporally encoded with reference to another slice. P-slices are alternatively described as “inter” slice encoded. HEVC also describes slices to include bi-predictive (B)-slices. B-slices are spatially encoded and temporally encoded with reference to two or more other slices. Further, HEVC consolidates the notion of P and B slices into general B slices that can be used as reference slice.
Rate control plays an important part of video coding technologies. This is due at least in part to the fact that the bit rate of the source material may not be well matched to available channel bandwidth used to deliver the compressed bit streams. It is also due at least in part to the fact that the techniques employed by the coding technologies compress the source material vary in efficiency from frame to frame of the video sequence, or even slice to slice. Further, even if the compression efficiency of was the same for each frame, changing source material also impacts the required channel bandwidth. For example, scenes with a high level of detail and little repeatability from frame to frame (sports programs showing spectators, for example) typically require very high bandwidth, while another scene of the same sports program showing only contestants and the playing field would not. Buffering of the source material and/or the coded stream may ameliorate some of these problems.
Spatial local activity has successfully been used in video coding for better subjective quality, which assigns relatively smaller quantization stepsizes to flat areas, such as blue sky, and larger quantization stepsizes to busy areas, such as grass. However, the pursuit of higher quality of multi-dimensional landscapes needs improvement. Accordingly, the use of temporal local activity and its applications to QP offset is disclosed herein.